Proxmox VE 开启Nvidia vGPU

  • ~9.17K 字
  1. 1. 说明
  2. 2. pve官方工具
  3. 3. 创建用于 vGPU 解锁的文件
    1. 3.1. 下载编译好的so文件
    2. 3.2. 自行编译
      1. 3.2.1. 准备
      2. 3.2.2. Git 仓库和Rust编译器
  4. 4. 安装驱动程序
  5. 5. 收尾
  6. 6. 引用

说明

  • 本教程假设您使用的是全新安装的 Proxmox VE 8.4.17。
  • 如果您使用的是 Proxmox VE 8.4.17,则必须使用 16.x 或 17.x 版本的驱动程序。旧版本驱动程序仅适用于 PVE 7。
  • 本教程tesl P4为例。

pve官方工具

安装PVE官方vGPU工具
自_pve-manager_版本起,8.3.4pve-nvidia-vgpu-helper工具已包含在内。如果您使用的是旧版本,请升级到最新版本或手动安装。

apt install pve-nvidia-vgpu-helper

pve-nvidia-vgpu-helper工具会进行一些基本设置,例如将nouveau驱动程序列入黑名单、安装头文件包、DKMS 等。您可以按以下步骤开始设置:

pve-nvidia-vgpu-helper setup

安装成功

系统会询问您是否要安装缺失的软件包,请回答“y”。所有必需的软件包成功安装后,您应该会看到此消息。

Adding modprobe config to block loading of the 'nouveau' module.
……
……
All done, you can continue with the NVIDIA vGPU driver installation.

安装完成后需要重启PVE

reboot

创建用于 vGPU 解锁的文件


mkdir /etc/vgpu_unlock

touch /etc/vgpu_unlock/profile_override.toml


mkdir /etc/systemd/system/{nvidia-vgpud.service.d,nvidia-vgpu-mgr.service.d}

echo -e "[Service]\nEnvironment=LD_PRELOAD=/opt/vgpu_unlock-rs/target/release/libvgpu_unlock_rs.so" > /etc/systemd/system/nvidia-vgpud.service.d/vgpu_unlock.conf

echo -e "[Service]\nEnvironment=LD_PRELOAD=/opt/vgpu_unlock-rs/target/release/libvgpu_unlock_rs.so" > /etc/systemd/system/nvidia-vgpu-mgr.service.d/vgpu_unlock.conf

下载编译好的so文件

mkdir -p /opt/vgpu_unlock-rs/target/release

wget -O /opt/vgpu_unlock-rs/target/releaselibvgpu_unlock_rs.so https://alist.homelabproject.cc/p/foxipan/vGPU/17.5/libvgpu_unlock_rs.so

自行编译

准备


# 先运行以下命令卸载旧驱动程序
nvidia-uninstall

# 添加社区 PVE 仓库并删除企业仓库
echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" >> /etc/apt/sources.list
rm /etc/apt/sources.list.d/pve-enterprise.list

# 安装一些软件包,例如 git、编译器和其他一些工具
apt update
apt dist-upgrade
apt install -y git build-essential dkms pve-headers mdevctl

Git 仓库和Rust编译器


git clone https://gitlab.com/polloloco/vgpu-proxmox.git

# vgpu_unlock-rs 仓库
cd /opt
git clone https://github.com/mbilker/vgpu_unlock-rs.git

# 安装 Rust 编译器
curl https://sh.rustup.rs -sSf | sh -s -- -y --profile minimal

# 将 Rust 二进制文件添加到你的 $PATH 环境变量中
source $HOME/.cargo/env

# 进入`vgpu_unlock-rs`目录并编译库文件
cd vgpu_unlock-rs/
cargo build --release

安装驱动程序

请阅读以下内容
从 17.0 版本开始,所有 Pascal(及更早版本)GPU 均不再获得官方支持。如果您仍想使用这些 GPU,请继续使用 LTS 16.x 分支。
也可以使用 17.x 版本的驱动程序,但即使你的显卡“受支持”,也需要对驱动程序进行修补,并且还需要执行一些额外的步骤,例如复制旧的 vgpuConfig.xml 文件。以后我可能会详细解释这一点。


wget https://alist.homelabproject.cc/d/foxipan/vGPU/16.12/Host_Drivers/NVIDIA-Linux-x86_64-535.274.03-vgpu-kvm.run

chmod +x NVIDIA-Linux-x86_64-535.274.03-vgpu-kvm.run

./NVIDIA-Linux-x86_64-535.274.03-vgpu-kvm.run --dkms -m=kernel

安装程序会问你
Would you like to register the kernel module sources with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later.
回答Yes即可

根据您的硬件配置,安装可能需要一两分钟。

如果一切顺利,您将会看到这条信息。

Installation of the NVIDIA Accelerated Graphics Driver for Linux-x86_64 (version: 535.274.03) is now complete.

点击Ok退出安装程序。

安装完成后,请重启电脑。

reboot

收尾

等待服务器重启,然后在 shell 中输入以下命令来检查驱动程序是否安装成功。

nvidia-smi

你应该会得到类似这样的输出结果。

Tue Mar  3 15:52:06 2026
+--------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.274.03            Driver Version: 535.274.03   CUDA Version: N/A     |
|-----------------------------------------+----------------------+---------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC|
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M.|
|                                         |                      |               MIG M.|
|=========================================+======================+=====================|
|   0  Tesla P4                       On  | 00000000:01:00.0 Off |                  Off|
| N/A   58C    P8              11W /  75W |     32MiB /  8192MiB |      0%      Default|
|                                         |                      |                  N/A|
+-----------------------------------------+----------------------+---------------------+
+--------------------------------------------------------------------------------------+
| Processes:                                                                           |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory|
|        ID   ID                                                             Usage     |
|======================================================================================|
|  No running processes found                                                          |
+--------------------------------------------------------------------------------------+

要验证 vGPU 解锁是否成功,请键入以下命令

mdevctl types
0000:01:00.0
  nvidia-760
    Available instances: 24
    Device API: vfio-pci
    Name: NVIDIA RTXA5500-1B
    Description: num_heads=4, frl_config=45, framebuffer=1024M, max_resolution=5120x2880, max_instance=24
  nvidia-761
    Available instances: 12
    Device API: vfio-pci
    Name: NVIDIA RTXA5500-2B
    Description: num_heads=4, frl_config=45, framebuffer=2048M, max_resolution=5120x2880, max_instance=12
  nvidia-762
    Available instances: 24
    Device API: vfio-pci
    Name: NVIDIA RTXA5500-1Q
    Description: num_heads=4, frl_config=60, framebuffer=1024M, max_resolution=5120x2880, max_instance=24
  nvidia-763
    Available instances: 12
    Device API: vfio-pci
    Name: NVIDIA RTXA5500-2Q
    Description: num_heads=4, frl_config=60, framebuffer=2048M, max_resolution=7680x4320, max_instance=12
  nvidia-764
    Available instances: 8
    Device API: vfio-pci
    Name: NVIDIA RTXA5500-3Q
    Description: num_heads=4, frl_config=60, framebuffer=3072M, max_resolution=7680x4320, max_instance=8
  nvidia-765
    Available instances: 6
    Device API: vfio-pci
    Name: NVIDIA RTXA5500-4Q
    Description: num_heads=4, frl_config=60, framebuffer=4096M, max_resolution=7680x4320, max_instance=6
  nvidia-766
    Available instances: 4
    Device API: vfio-pci
    Name: NVIDIA RTXA5500-6Q
    Description: num_heads=4, frl_config=60, framebuffer=6144M, max_resolution=7680x4320, max_instance=4
  nvidia-767
    Available instances: 3
    Device API: vfio-pci
    Name: NVIDIA RTXA5500-8Q
    Description: num_heads=4, frl_config=60, framebuffer=8192M, max_resolution=7680x4320, max_instance=3
  nvidia-768
    Available instances: 2
    Device API: vfio-pci
    Name: NVIDIA RTXA5500-12Q
    Description: num_heads=4, frl_config=60, framebuffer=12288M, max_resolution=7680x4320, max_instance=2
  nvidia-769
    Available instances: 1
    Device API: vfio-pci
    Name: NVIDIA RTXA5500-24Q
    Description: num_heads=4, frl_config=60, framebuffer=24576M, max_resolution=7680x4320, max_instance=1
  nvidia-770
    Available instances: 24
    Device API: vfio-pci
    Name: NVIDIA RTXA5500-1A
    Description: num_heads=1, frl_config=60, framebuffer=1024M, max_resolution=1280x1024, max_instance=24
  nvidia-771
    Available instances: 12
    Device API: vfio-pci
    Name: NVIDIA RTXA5500-2A
    Description: num_heads=1, frl_config=60, framebuffer=2048M, max_resolution=1280x1024, max_instance=12
  nvidia-772
    Available instances: 8
    Device API: vfio-pci
    Name: NVIDIA RTXA5500-3A
    Description: num_heads=1, frl_config=60, framebuffer=3072M, max_resolution=1280x1024, max_instance=8
  nvidia-773
    Available instances: 6
    Device API: vfio-pci
    Name: NVIDIA RTXA5500-4A
    Description: num_heads=1, frl_config=60, framebuffer=4096M, max_resolution=1280x1024, max_instance=6
  nvidia-774
    Available instances: 4
    Device API: vfio-pci
    Name: NVIDIA RTXA5500-6A
    Description: num_heads=1, frl_config=60, framebuffer=6144M, max_resolution=1280x1024, max_instance=4
  nvidia-775
    Available instances: 3
    Device API: vfio-pci
    Name: NVIDIA RTXA5500-8A
    Description: num_heads=1, frl_config=60, framebuffer=8192M, max_resolution=1280x1024, max_instance=3
  nvidia-776
    Available instances: 2
    Device API: vfio-pci
    Name: NVIDIA RTXA5500-12A
    Description: num_heads=1, frl_config=60, framebuffer=12288M, max_resolution=1280x1024, max_instance=2
  nvidia-777
    Available instances: 1
    Device API: vfio-pci
    Name: NVIDIA RTXA5500-24A
    Description: num_heads=1, frl_config=60, framebuffer=24576M, max_resolution=1280x1024, max_instance=1

如果此命令没有返回任何输出,则 vGPU 解锁功能无法正常工作。

您还可以尝试以下命令来查看您的显卡是否被识别为已启用虚拟GPU:

nvidia-smi vgpu

如果解锁过程一切正常,输出结果应该类似于这样:

Tue Mar  3 17:10:02 2026
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 535.274.03             Driver Version: 535.274.03                |
|---------------------------------+------------------------------+------------+
| GPU  Name                       | Bus-Id                       | GPU-Util   |
|      vGPU ID     Name           | VM ID     VM Name            | vGPU-Util  |
|=================================+==============================+============|
|   0  Tesla P4                   | 00000000:01:00.0             |   0%       |
|      3251634195  NVIDIA RTXA... | e6c6...  Windows10,debug-... |      0%    |
+---------------------------------+------------------------------+------------+

但是,如果您得到这样的输出,那就说明出了问题。

No supported devices in vGPU mode

引用